In [1]:
from pathlib import Path

from ipyniivue import download_dataset

# GitHub API URL for the base folder
BASE_API_URL = "https://niivue.com/demos/images/"
DATA_FOLDER = Path("images")

# Download data for example
download_dataset(
    BASE_API_URL,
    DATA_FOLDER,
    files=[
        "mni152.nii.gz",
        "hippo.nii.gz",
    ],
)
mni152.nii.gz already exists.
hippo.nii.gz already exists.
Dataset downloaded successfully to images.
In [2]:
import ipywidgets

from ipyniivue import NiiVue, SliceType, WidgetObserver

volumes = [
    {
        "path": DATA_FOLDER / "mni152.nii.gz",
        "colormap": "gray",
        "opacity": 1.0,
    },
    {
        "path": DATA_FOLDER / "hippo.nii.gz",
        "colormap": "red",
        "opacity": 1.0,
    },
]

nv = NiiVue(slice_type=SliceType.MULTIPLANAR)
nv.load_volumes(volumes)

widgetArray = []

widget_slice_type = {
    "widget": ipywidgets.RadioButtons(
        options=[
            ("Axial", 0),
            ("Coronal", 1),
            ("Sagittal", 2),
            ("Multiplanar", 3),
            ("Render", 4),
        ],
        value=3,
        description="Slice Type:",
    ),
    "obj": nv.opts,
    "attribute": "slice_type",
}
widgetArray.append(widget_slice_type)

widget_scan_opacity = {
    "widget": ipywidgets.FloatSlider(
        value=1.0,
        min=0.0,
        max=1.0,
        step=0.1,
        description="Scan Opacity:",
        orientation="horizontal",
    ),
    "obj": nv.volumes[0],
    "attribute": "opacity",
}
widgetArray.append(widget_scan_opacity)

widget_hippo_opacity = {
    "widget": ipywidgets.FloatSlider(
        value=1.0,
        min=0.0,
        max=1.0,
        step=0.1,
        description="Hippocampus Opacity:",
        orientation="horizontal",
    ),
    "obj": nv.volumes[1],
    "attribute": "opacity",
}
widgetArray.append(widget_hippo_opacity)

widget_scan_colormap = {
    "widget": ipywidgets.Select(
        options=["Gray", "Red", "Blue", "Green"],
        value="Gray",
        description="Scan Colormap:",
    ),
    "obj": nv.volumes[0],
    "attribute": "colormap",
}
widgetArray.append(widget_scan_colormap)

widget_hippo_colormap = {
    "widget": ipywidgets.Select(
        options=["Red", "Blue", "Green", "Gray"],
        value="Red",
        description="Hippocampus Colormap:",
    ),
    "obj": nv.volumes[1],
    "attribute": "colormap",
}
widgetArray.append(widget_hippo_colormap)

for widget in widgetArray:
    WidgetObserver(**widget)

display(nv)

for widget in widgetArray:
    display(widget["widget"])